package cn.han.review.innerclass;
//本类用与测试成员内部类被static修饰
public class TestInner3 {
    public static void main(String[] args) {
        //4.创建内部类对象调用方法
//        Outer3.Inner3 oi = new Outer3(). new Inner3();

        /*现象：当内部类被static修饰以后，可以通过类名找到内部类
        所以我们无需创建外部类对象，可以通过类名找到内部类
        直接创建静态内部类的对象即可

        */
        //普通方式创建静态内部类对象
        Outer3.Inner3 oi = new Outer3.Inner3();
        oi.show();
        //5.创建匿名的静态内部类对象，并且调用内部类的方法show().
        new Outer3.Inner3().show();
        //6.访问静态内部类的静态方法--链式加载
        Outer3.Inner3.fly();



    }
}
//1.创建外部类
class Outer3{
    //2.创建内部类

    static class Inner3{
        //3.创建成员内部类的普通方法
        public void show(){
            System.out.println("我是成员内部类的普通方法");
        }
        //4.创建成员内部类的静态方法
        /*
        * 内部类作为外部类的一个特殊成员，需要设置成静态，才能在静态内部类中添加静态方法*/
        public static void fly(){
            System.out.println("我是成员内部类的静态方法");
        }
    }
}